<?php
namespace App\Controllers;
class Travel extends BaseController
{
public function index()
    {
    // connect to the model
    $places = new \App\Models\Places();
    // retrieve all the records
    $records = $places->findAll();
    // get a template parser

    $table = new \CodeIgniter\View\Table();
    // $headings = $places->fields;
    $headings = $places->db->getFieldNames('places');//lab11
    $displayHeadings = array_slice($headings, 1, 2);
    $table->setHeading(array_map('ucfirst', $displayHeadings));

//     foreach ($records as $record) {
//     $nameLink = anchor("travel/showme/$record->id",$record->name);
//     $table->addRow($nameLink,$record->description);
// }

    foreach ($records as $record) {
    $nameLink = anchor("travel/showme/".$record['id'], 
    $record['name']);

    $deleteButton = anchor("travel/delete/".$record['id'], "Delete");
            $table->addRow($nameLink, $record['description'],$deleteButton); 
    }//lab11 add

    $template = [
    'table_open' => '<table cellpadding="5px">',
    'cell_start' => '<td style="border: 1px solid #dddddd;">',
    'row_alt_start' => '<tr style="background-color:#dddddd">',
    ];
    $table->setTemplate($template);
    $fields = [
        'title' => 'Travel Destinations',
        'heading' => 'Travel Destinations',
        'footer' => 'Copyright XIEzhaokai'
    ];
    

    $parser = \Config\Services::parser();
    // tell it about the substitions
    $link = anchor('travel/create/', 'Create a Destination');
    return $parser->setData($fields)
                 ->render('templates\top') .
                 $link.
          $table->generate() .
          $parser->setData($fields)
                 ->render('templates\bottom');
    }
    



public function showme($id)
    {
    // connect to the model
    $places = new \App\Models\Places();
    // retrieve all the records
    $record = $places->find($id);
    // get a template parser
    $table = new \CodeIgniter\View\Table();

    // $headings = $places->fields;
    // $displayHeadings = array_slice($headings, 1, 2);
    // $table->setHeading(array_map('ucfirst', $displayHeadings));

    $table->addRow('<p><a href="/travel/edit/'.$record['id'].'">Edit</a ></p >');
    $table->addRow('Id',$record['id']);
    $table->addRow('Name',$record['name']);
    $table->addRow('Description',$record['description']);
    $table->addRow('Link',$record['link']);
    $table->addRow('Image','<img src="\\image\\'.$record['image'].'" width="810" height="640">');
    $table->addRow('<p><a href="/travel/">comeback</a ></p >');

    $template = [
        'table_open' => '<table cellpadding="20px" style="margin-top:30px; margin-bottom:30px;">',
        'cell_start' => '<td style="border: 1px solid #dddddd;">',
        'row_alt_start' => '<tr style="background-color:#dddddd">',
        ];
        $table->setTemplate($template);
        
        $fields = [
            'title' => ''.$record['name'].'',
            'heading' => ''.$record['name'].'',
            'footer' => 'Copyright Xiezhaokai'
        ];
    // get a template parser 
    $parser = \Config\Services::parser(); 
    // tell it about the substitions 
    // return $parser->setData($record) 
    // // and have it render the template with those ->render('oneplace');
    // ->render('oneplace'); 

    return $parser->setData($fields)
    ->render('templates\top') .
        $table->generate() .
    $parser->setData($fields)
    ->render('templates\bottom');
    }

public function edit($id = NULL) { 
    $places = new \App\Models\Places();
    $record = $places->find($id);
    $fields = [
            'title' => 'Edit a Destination',
            'heading' => 'Edit a Destination',
            'footer' => 'Copyright Xavier'
            ];
            $parser = \Config\Services::parser();
                return $parser->setData($fields)
                ->render('templates\top') .
                $parser->setData($record)
                ->render('editplace') .
                $parser->setData($fields)
                ->render('templates\bottom');
}
public function handle() { 
    $places = new \App\Models\Places();
        helper(['form', 'url']);
        $id = $this->request->getPost('id');
$record = $places->find($id);

if ($this->validate($places->validationRules)) {
    if ($id == 0) {
    $places->save([
    'name' => $this->request->getPost('name'),
    'description' => $this->request->getPost('description'),
    'link' => $this->request->getPost('link'),
    'image' => $this->request->getPost('image'),
    ]);
    } else {
    $places->save([
    'id' => $this->request->getPost('id'),
    'name' => $this->request->getPost('name'),
    'description' => $this->request->getPost('description'),
    'link' => $this->request->getPost('link'),
    'image' => $this->request->getPost('image'),
        ]);
        }
    }
    $fields = [
            'title' => 'Edit a Destination',
            'heading' => 'Edit a Destination',
            'footer' => 'Copyright Xavier'
        ];
        $parser = \Config\Services::parser();
         //Top of page
                $returnView = $parser->setData($fields)->render('templates\top');

            //Body of page
            if (!$this->validate($places->validationRules)) {
            $returnView .= $parser->renderString($this->validator->listErrors());
            $returnView .= $parser->setData($this->request->getPost())
                ->render('editplace');
            } else {
            $returnView .= $parser->renderString("<p>Success!</p>");
            $returnView .= $parser->setData($this->request->getPost())
                ->render('editplace');
            }
         
            //Bottom of page
                $returnView .= $parser->setData($fields)
                ->render('templates\bottom');
         
            return $returnView;
}

public function create($id = NULL)
{
$fields = [
'title' => 'Create a Destination',
'heading' => 'Create a Destination',
'footer' => 'Copyright Xavier'
];
$record = [
'id' => 0,
'name' => '',
'description' => '',
'link' => '',
'image' => '',
];
$parser = \Config\Services::parser();
return $parser->setData($fields)
->render('templates\top') .
$parser->setData($record)
->render('editplace') .
$parser->setData($fields)
->render('templates\bottom');
}
public function delete($id)
{
$places = new \App\Models\Places();
$places->delete($id);
return redirect()->to('travel');
}

}



